ࡱ> 9 bjbj1kl^^^^^^^r0S0S0S8hS tS rTT"TTTTTT*,,,,,,$a tP^TTTTTP^^TTeTQ^T^T*T*(^^TT "T2urQ0S({0(rr^^^^APNDICE B PROGRAMA KANTOR-DULANTO ;msg implementado ;mapa foF2 ;R<=M, M<=R, M<=M-R ; Estatstica, histograma, std, mdia etc ; P41 maior do que +-1 ? ; procurar o File correspondente ao Plot que tenho do dia 120. ;###################################### ;# Prediccion01.pro # ;# Predio dos Coeficientes do GIM # ;# Ivan J.Kantor - Miguel Dulanto # ;# 01/05/02 - IDL 5.3 SJC INPE # ;###################################### ; ; Programa l 36 files de Coeficientes ; usa 30 para prever as prximas 6 ; no. mximo = 36 ; Lon = 73, Lat = 71 para mapa GIM ; etc ; pro LeCoeficientes, Coef,Files,diretorio ;--------------------------------------- ;Subrotina para ler os coeficientes do Global Ionosphere Maps ; Armazenados da seguinte forma Coef[n,m] n=grau m=ordem ; ; |00 10 20 30 ..| |0+0 1+1 2+2 3+3 ..| ; array |01 11 21 31 ..| = Coef |1-1 1+0 2+1 3+2 ..| ; |02 12 22 32 ..| |2-2 2-1 2+0 3+1 ..| ; |03 13 23 33 ..| |3-3 3-2 3-1 3+0 ..| ; |... | |... | ; ; array[i,j] = Coef[n,n-|m|] m >= 0 ; Coef[n-|m|,n] m < 0 ; ; Coef[ n=i, m=i-j] = array[i,j] i >= j ; Coef[ n=i-j, m=i] i < j ; i = (m ge 0)? n:n+m ; j = (m ge 0)? n-m:n ;vai armazenar 35 dias de 12 grupos de hora impar contendo 16x16 coeficientes ;Coef = dblarr(36,12,16,16) ; 35x12x16x16 = 107.520 nmeros buffer = '' Files = findfile(diretorio+'coe*.txt',count=NFile) if NFile eq 0 then return ; evitar file vazio Files = Files(sort(Files)) ; ordena os files ;print,'Files,NFile', Files,NFile ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< File = Files[0] ; le primeiro file de TEC, para obter nmero de coeficientes openr,lun,File,/get_lun comment='' ; recebe os dados de ordem e grau mximos do Polinmio de Legandre while comment ne 'COMMENT / WA' do begin readf,lun,buffer comment = StrMid(buffer,0,12) if comment eq 'MAXIMUM DEGR' then reads,buffer,format="(49X,I4)",mMax ;est certo?? if comment eq 'MAXIMUM ORDE' then reads,buffer,format="(49X,I4)",nMAx endwhile close,lun & free_lun,lun nm = (nMax+1)*(mMax+1) ;Le dados de TEC de cada File for iFile=1,NFile do begin ;print, "processando file no. ",iFile ; <<<<<<<<<<<<<<<<<<<<<<<< File = Files[iFile-1] openr,lun,File,/get_lun comment='' ; posiciona a leitura for iHora=0,11 do begin comment='' ; posiciona a leitura while comment ne 'COEFFICIENTS' do begin readf,lun,buffer comment = StrMid(buffer,0,12) ;help,comment ;<<<<<<<<<<<<<<< endwhile readf,lun,buffer ; pula titulo n=0 & m=0 & value=1.0d0 & rms=0.0d0 for inm = 0,nm-1 do begin readf,lun,format='(I4,4X,I4,D18.8,D11.4)', n,m,value,rms ;print, n,m,value,rms mm = abs(m) if (m ge 0) then Coef[iFile-1,iHora,n,n-mm]=value $ else Coef[iFile-1,iHora,n-mm,n]=value endfor ; nm fim: ;print,'Hora= ',iHora+1,' File= ',File endfor ; terminou leitura de um File de tec close,lun & free_lun,lun endfor ;print,'Terminou TODOS os Files' ;Leu todos os dados de TEC ;stop end pro LeFileGIM, TEC,File ;---------------------------------------------------------------- ; le primeiro file de TEC, para obter nmero de Lat e Lon ;NLon=73 & NLat=71 buffer = '' A=0 & Mes=0 & D=0 & Hora=0 & M=0 & S=0.0 Lat=0.0 & Lon1=0.0 & Lon2=0.0 & DLon=0.0 & H=0.0 Lat1=0.0 & Lat2=0.0 & DLat=0.0 openr,lun1,File,/get_lun comment='' ; posiciona a leitura while comment ne 'END OF HEADER' do begin readf,lun1,buffer comment = StrMid(buffer,60,13) if comment eq 'LAT1 / LAT2 /' then reads,buffer,format="(2X,3F6.1)",Lat1,Lat2,DLat if comment eq 'LON1 / LON2 /' then reads,buffer,format="(2X,3F6.1)",Lon1,Lon2,DLon endwhile NLat=fix(abs((Lat2-Lat1)/DLat))+1 & NLon=fix(abs((Lon2-Lon1)/DLon))+1 ;& Help,NLat,NLon Lats = fltarr(NLat) & Lons=fltarr(NLon) for i=1,NLat do Lats[i-1]=Lat1+DLat*(i-1) for i=1,NLon do Lons[i-1]=Lon1+DLon*(i-1) ;print,'Lats=',Lats ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< T=fltarr(NLon) & TEC=fltarr(NLon,NLat,12) close,lun1 & free_lun,lun1 openr,lun1,File,/get_lun comment='' ; posiciona a leitura while comment ne 'END OF HEADER' do begin readf,lun1,buffer comment = StrMid(buffer,60,13) if comment eq 'LAT1 / LAT2 /' then reads,buffer,format="(2X,3F6.1)",Lat1_,Lat2_,DLat_ if comment eq 'LON1 / LON2 /' then reads,buffer,format="(2X,3F6.1)",Lon1_,Lon2_,DLon_ endwhile if (Lat1_ ne Lat1)or(Lat2_ ne Lat2)or(DLat_ ne DLat) then stop,'latitudes diferentes' if (Lon1_ ne Lon1)or(Lon2_ ne Lon2)or(DLon_ ne DLon) then stop,'longitudes diferentes' for iTempo=0,11 do begin readf,lun1,buffer ; pula header readf,lun1,format="(5I6,F6.0)", A,Mes,D,Hora,M,S for iLat=0,NLat-1 do begin readf,lun1,format="(2X,5F6.1)", Lat,Lon1,Lon2,DLon,H ;print,"iLat=",iLat," Lat=",Lat," hora=",Hora," Tempo=",iTempo*2+1 ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< readf,lun1,format="(16I5)", T TEC[*,iLat,iTempo]=T ;print,T ; TESTE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< endfor readf,lun1,buffer ; pula header final endfor close,lun1 & free_lun,lun1 end Function PLgndr, n,m,x ;--------------------------------------- ;Numerical Recipes ;x=findgen(101)/50-1 & plot,x,PLgndr(2,0,x) ; teste ;if((m lt 0)or(m gt n)or(abs(x)gt 1.)) then stop,'bad arguments' Pmm=0.0*x+1.d0 ;truque para manter o array mesma dimenso de x if m gt 0 then begin somx2 = sqrt((1.-x)*(1.+x)) fact=1 for i=1,m do begin ;Pmm = -Pmm*fact*somx2 ;MENOS??? Pmm = Pmm*fact*somx2 fact = fact + 2 endfor endif if n eq m then PLgndr = Pmm $ else begin PmmP1 =x*(2*m+1)*Pmm if n eq (m+1) then PLgndr = PmmP1 $ else begin for nn=m+2,n do begin Pnn = (x*(2*nn-1)*PmmP1-(nn+m-1)*Pmm)/(nn-m) Pmm = PmmP1 PmmP1 = Pnn endfor PLgndr = Pnn endelse endelse return, PLgndr end Function PLgndrArfken, n,m,x,OK ;--------------------------------------- sqrt1_x2 = sqrt(1.-x*x) case 1 of ;1=true (n eq 1)and(m eq 1): P = sqrt1_x2 ;P11 (n eq 2)and(m eq 1): P = 3.*x*sqrt1_x2 ;P21 (n eq 2)and(m eq 2): P = 3.*(1-x*x) ;P22 (n eq 3)and(m eq 1): P = (3./2.)*(5.*x*x-1.)*sqrt1_x2 ;P31 (n eq 3)and(m eq 2): P = 15.*x*(1.-x*x) ;P32 (n eq 3)and(m eq 3): P = 15.*sqrt1_x2^3 ;P33 else: P=x endcase return, P end pro GIM,E,Lon,Lat,info,Coef,modo ;--------------------------------------- ;Coef -> GIM ;modo=['calculate GIM','GIM grau fixo','GIM ordem fixa'] help,Coef NLat=71 & Lat=findgen(NLat)*(-2.5)+87.5 ; talvez possa eliminar <<<<<<<<<<<<<<< NLon=73 & Lon=findgen(NLon)*5-180. UT = info.iHora*2 + 01 ; Hora Universal (UT) beta = double(Lat)*!DtoR if info.SunEarth eq 1 then s=double(Lon+UT*15.-180.)*!DtoR $ ;earth-fixed else s=double(Lon)*!DtoR ;sun-fixed E = dblarr(NLon,Nlat) ; j vez zerada for i=0,15 do begin for j=0,15 do begin help,i,j coef_nm = Coef[i,j] n = (i ge j)? i:j m = i-j ;help,n,m ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< mm=abs(m) if modo ne 'calculate GIM' then begin if (modo eq 'GIM grau fixo')and(n ne info.Grau) then goto,fim if (modo eq 'GIM ordem fixa')and(mm ne info.Ordem) then goto,fim endif delta_0m = (0 eq m)?1:0 ; if(m=0)then 1 else 0 lambda_nm=sqrt(factorial(n-mm)*(2*n+1)*(2-delta_0m)/factorial(n+mm)) ;goto, pula1 ;aPLgndr = ((n eq 0)and(m eq 0))?(0.0*beta+1):lambda_nm*PLgndr(n,mm,sin(beta)) aPLgndr = lambda_nm*PLgndr(n,mm,sin(beta)) ;help, aPLgndr cossin_ms = (m ge 0)? cos(mm*s):sin(mm*s) Enm = aPLgndr*coef_nm##cossin_ms E = E + Enm ;help,E pula1: goto, pula2 for iLat=0,70 do begin aPLgndr = lambda_nm*PLgndr(n,mm,sin(beta[iLat])) for iLon=0,72 do begin cossin_ms = (m ge 0)? cos(mm*s[iLon]):sin(mm*s[iLon]) E[iLon,iLat] = E[iLOn,iLat] + aPLgndr*value*cossin_ms endfor endfor pula2: ;surface, E,Lon,Lat ;contour, E,Lon,Lat, NLevels=10,/fill,/overplot ;contour, E,Lon,Lat;, NLevels=10,/fill,/overplot ; animao ;if ((n eq 15)and(m eq -15)) then goto,fim ;endwhile fim: endfor endfor end pro PlotGIM, E,Lon,Lat ;--------------------------------------- ;Plot GIM map ;loadct,33 MAP_SET,/mercator,/Grid,LONDEL=30,LATDEL=15;>>>>>>>>mdc contour, E,Lon,Lat, Levels=indgen(16)*10,/fill,/overplot ;contour, E,Lon,Lat, Levels=indgen(16)*10,/overplot ;coloca as linhas for j=0,14 do TV, replicate((!D.Table_Size/15)*j,30,10), 30*j+50,20 ; tabela de cores ;TEK_COLOR ;32 colors. Index 0=black,1=white,2=red,3=green,4=blue,5=cyan,6=magenta,8=orange etc. ;!P.Color=0 ;!P.BackGround=1; linhas pretas em fundo branco contour, E,Lon,Lat, Levels=indgen(16)*10,/overplot,color=1,XRANGE=[-180,180],/XSTYLE,YRANGE=[-90,90],/YSTYLE,XGRIDSTYLE=1,XTHICK=1.2,XTICKLEN=1,XTICKS=18 $ ,yGRIDSTYLE=1,yTHICK=1.2,YTICKLEN=1,YTICKS=12;>>>mdc map_continents, color=0,/Grid,LONDEL=30,LATDEL=15;>>>>>>>>>mdc plots,[50,30*15+50],[20,20],color=1,/device plots,[50,30*15+50],[20+10,20+10],color=1,/device for j=0,15 do plots,[30*j+50,30*j+50],[20,20+10],color=1,/device for j=0,15 do xyouts, 30*j+5,8, j*10 ,color=1,/device return end pro PlotGIM_BW, E,Lon,Lat ;--------------------------------------- ;Plot GIM map B&W MAP_SET,/mercator,/Grid,LONDEL=30,LATDEL=15;>>>mdc ;contour, E,Lon,Lat, Levels=indgen(16)*10,/fill,/overplot contour, E,Lon,Lat, Levels=indgen(16)*10,/overplot ;for j=0,14 do TV, replicate((!D.Table_Size/15)*j,30,10), 30*j+50,20 ; tabela de cores ;TEK_COLOR ;32 colors. Index 0=black,1=white,2=red,3=green,4=blue,5=cyan,6=magenta,8=orange etc. ;!P.Color=0 & !P.BackGround=1; linhas pretas em fundo branco contour, E,Lon,Lat, Levels=indgen(16)*10,/overplot map_continents return end pro calculate_plot_Default,info ;-------------------------------- n=info.Grau m=info.Sinal*info.Ordem i = (m ge 0)? n:n+m j = (m ge 0)? n-m:n case info.plotDefault of 'Coef(dias)': begin plot,info.Coef[*,info.iHora,i,j],title='Coeficiente'+string(n)+string(m),xtitle='dias' end 'Coef(horas)': begin tempo = indgen(12)*2+1 plot,tempo,info.Coef[info.iFile,*,i,j],title='Coeficiente'+string(n)+string(m),xtitle='horas' end 'Coef(tempo)': begin x = info.Coef[0,*,i,j] for iFile=1,35 do x=[x,info.Coef[iFile,*,i,j]] plot,x,title='Coeficiente'+string(n)+string(m),xtitle='horas + dias' end 'correlao': begin x =info.Coef[*,info.iHora,i,j] & help,x ; veja a dimensao lag = indgen(30) c = fltarr(30) for i=0,29 do c[i] = a_correlate(x,lag[i]) plot,lag,c,title='Coeficiente'+string(n)+string(m) plots,[0,30],[0,0] end 'Espectro': begin espectro = abs(FFT(info.Coef[*,info.iHora,i,j])) plot,espectro[1:*],title='Coeficiente'+string(n)+string(m) end 'Plot Pnm(x)': begin x = (findgen(201)-100.)/100. plot,x,PLgndr(n,m,x),title='P'+string(n)+string(m),xtitle='x' oplot,x,PLgndrArfken(n,m,x,1),color=2,linestyle=2 end 'Plot Pnm(senB)': begin B = findgen(181)-90. plot,B,PLgndr(n,m,sin(B*!DtoR)),title='P(senB)'+string(n)+string(m),xtitle='beta' end else: print,'erro plot Default:',selecao endcase end pro calculate_graphic_GIM,info,selecao ;---------------------------------------- widget_control,/hourglass GIM, E,Lon,Lat,info,reform(info.Coef[info.iFile,info.iHora,*,*]),selecao ;reform elimina dimenso 1 info.GIM = E contour, info.GIM,info.Lon,info.Lat, Levels=indgen(16)*10,/fill ; default = contour ???????? ;PlotGIM, E,Lon,Lat end pro calculate_graphic_Default,info ;-------------------------------- ;----------------------------------- ; Coef[00:35] = Coef. dos Files ; Coef[36:41] = Preditos Coefp(6,12,16,16) ; Coef[42:47] = Pred. - Medidos ; Coef[48] = Coef(Hora) CoeFile(12,16,16) ; Coef[49] = GIM(Hora) TEC(73,71,12) ; Coef[50] = memory M(73,71) ;----------------------------------- widget_control,/hourglass ;info.Lon = Lon ;<<<<<<<<<<<<<<<<<<>>mdc for j=0,14 do TV, replicate((!D.Table_Size/15)*j,30,8), 30*j+150,15 plots,[70,680],[240,240],color=0,/device plots,[375,375],[40,440],color=0,/device plots,[150,30*15+150],[15,15],color=0,/device plots,[150,30*15+150],[15+8,15+8],color=0,/device for j=0,15 do plots,[30*j+150,30*j+150],[15,15+8],color=0,/device for j=0,15 do xyouts,100+ 30*j+5,2, j*10 ,color=0,/device return end 'estatistica': begin ;plot,histogram(info.GIM) data = info.GIM hist = HISTOGRAM(data) bins = FINDGEN(N_ELEMENTS(hist)) + MIN(data) ;PRINT, MIN(hist) ;PRINT, bins PLOT, bins, hist, YRANGE = [MIN(hist)-1, MAX(hist)+1], PSYM = 10, $ XTITLE = 'TECU', YTITLE = 'Histograma' momento = moment(data,sdev=sdev,mdev=mdev) media = string(momento[0]) varianca = string(momento[1]) mdev = string(mdev) sdev = string(sdev) maxGim = string(max(data)) minGIM = string(min(data)) x=400 & y=400 & dy=-20 xyouts,[x,x,x,x,x,x],[y,y+dy,y+2*dy,y+3*dy,y+4*dy,y+5*dy], $ ['media'+media,'mean abs.dev'+mdev,'variana'+varianca,'stdv'+sdev,'max'+maxGIM,'min'+minGIM],/device end 'subtrai GIM': else: print,'erro plot Default:',selecao endcase end pro MEM, G,mm,x,n,P ;--------------------------------------- ;Maximum Entropy Method ;Prediction Error Filter - Burg G=fltarr(128) & EB=fltarr(128) & EF=fltarr(128) & GG=fltarr(128) ; n is limited to 128 ;P=0.0 & for j=1,n do begin P=P+x[j]*x[j] & P=P/n P=0.0 & for j=1,n do P=P+x[j-1]*x[j-1] & P=P/n & P0=P print,format="(' M= 0',17X,' P=',E14.6)",P ;G[1]=1.0 & m=1 & EB[1]=x[1] & EF[n-1]=x[n] G[1]=1.0 & m=1 & EB[1]=x[0] & EF[n-1]=x[n-1] for j=2,n-1 do begin ; EB[j] = x[j] ; EF[j-1]=x[j] EB[j] = x[j-1] EF[j-1]=x[j-1] endfor goto, IN LOOP: m = m + 1 G[m]=R & for j=1,m do GG[j]=G[j] for j=1,n-m do begin EB[j] = EB[j] + R*EF[j] EF[j] = EF[j+1] + R*EB[j+1] endfor IN: Nom=0.0 & Den=0.0 for j=1,n-m do begin Nom = Nom + EB[j]*EF[j] Den = Den + EB[j]*EB[j] + EF[j]*EF[j] endfor R=-2.*Nom/Den & P=P*(1.-R*R) FPE = (n+m+1)*P*P/(n-(m+1)) print,format="(' M=',I3,' R=',E14.6,' P=',E14.6,' P%=',F8.3,' FPE=',E14.6)",m,R,P,100.*P/P0,FPE if (m eq 1) then goto, LOOP for j=2,m do G[j]=GG[j]+R*GG[m-j+2] if (m lt mm) then goto,LOOP G[m+1] = R return end pro Serie_Predita_MEM, xp,x ;------------------------------------------------ n=36 & t=findgen(n) nn=30 & m=nn/2 MEM, G,m,x[0:nn-1],nn,P ; pega s os 30 pontos iniciais ;Print,' P=',P ;print,'G=',G ; Prediccion x=srie; xp=x predito a partir de nn+1 ggg=-G[1:m+1] ;& print,ggg xp=fltarr(n) & xp[0:nn-1]=x[0:nn-1] for i=nn,n-1 do begin xp[i]=0.0 for j=1,m do xp[i]=xp[i]+ggg[j]*x[i-j] endfor ;plot,t,x ;oplot,t[nn-1:n-1],xp[nn-1:n-1],color=2 xp = xp[nn:n-1] ;toma s a parte predita end pro Prediccion01 ; -------------------------------------------------------------------- ; L os coeficientes do GIM, prepara a tela set_plot,'WIN' device,decompose=0 NOut=0 ; contador de Output Files ;TEK_color ;32 colors. Index 0=black,1=white,2=red,3=green,4=blue,5=cyan,6=magenta,8=orange etc. LoadCT,33 TVLCT,[0B,255B,255B,0B],[0B,255B,0B,0B],[0B,255B,0B,255B] ; [preto,branco,vermelho,azul] !P.Color=0 & !P.BackGround=1 ; linhas pretas em fundo branco ;LEITURA DOS COEFICIENTES Coef = dblarr(36,12,16,16) ; 35x12x16x16 = 107.520 nmeros ;File = 'D:/gps/Miguel/dadosTEC/Cod11475.ion' ;File = 'D:/gps/Miguel/dadosTEC/example.ion' ;diretorio='' & diretorio_D='c:\Miguel\CoefGIM\' diretorio='' & diretorio_D='c:\Miguel\CoefGIM\' File = findfile(diretorio_D+'Coeficientes.ini',count=NFile) & help,NFile & print,File ;<<<<<<<< if NFile eq 1 then begin ; J existe a Tabela de Coeficientes openr,lun,File[0],/get_lun readu,lun,Coef close,lun & free_lun,lun Files = findfile(diretorio_D+'coe*.txt',count=NFile) if NFile eq 0 then return ; evitar file vazio Files = Files(sort(Files)) ; ordena os files end else begin ; No existe a Tabela dos Coeficientes, precisa l-los read,PROMPT='Diretorio('+diretorio_D+'):',diretorio if(diretorio eq '') then diretorio=diretorio_D LeCoeficientes, Coef,Files,diretorio ;Le os coeficientes GIM nos files do diretorio gravaCoef = dialog_message('Grava os Coeficientes ?',/question) if gravaCoef eq 'Yes' then begin openw,lun,diretorio+'Coeficientes.ini',/get_lun writeu,lun,Coef close,lun & free_lun,lun endif endelse FilesCoef = strarr(36+6+6+3) FilesCoef[0:35] = strmid(Files,10,/reverse) FilesCoef[36:41] = 'Pred'+strmid(FilesCoef[30:35],3,4) FilesCoef[42:47] = 'D-'+strmid(FilesCoef[30:35],3,4) FilesCoef[48:50] = ['Coef(Hora)','GIM(Hora)','memory'] Horas = ['01','03','05','07','09','11','13','15','17','19','21','23'] descricao = [ $ '1\L Files','0\File Coef','2\File GIM', $ '1\Plot','0\Coef(dias)','0\Coef(horas)','0\Coef(tempo)','0\correlao','0\Espectro', $ '4\Plot Pnm(x)','2\Plot Pnm(senB)', $ '1\Calculate Coef','0\calculate GIM','0\GIM grau fixo','0\GIM ordem fixa','4\M <= R','0\M = M - R','0\M = - M','4\sun-fixed','0\earth-fixed','4\geogr.','2\geomag.', $ '1\GIM','0\Plot GIM','0\Plot Contour B&W','0\surface', $ '0\shade','0\trigrid','0\shade 3grid','0\contour','4\polar equador','0\polar Greenwich','0\estatistica','2\subtrai GIM', $ '1\Predicao Coef','0\Kalman','0\MEM','2\MinQua', $ '1\Predicao GIM','0\Kalman_GIM','0\MEM_GIM','2\MinQua_GIM', $ '1\Animao','0\24 horas','2\36 dias', $ '1\Frequncia','0\Mapa F2crit','0\Pred. F2crit 1d','3\atraso','0\1 MHz ','0\10 MHz','0\100 MHz','0\1 GHz','2\10 GHz',$ '1\Output','0\print tela','0\annotate','0\coeficientes','0\Coef(File,H)','2\GIM(File,H)', $ '1\Sair','0\teste','2\sair'] base0 = widget_base(/col,MBar=bar,title='GPS Prediccin') menu0 = cw_PDMenu(bar,descricao,/MBar,/return_name,uvalue='menu0') base = widget_base(base0,/column) ;texto = widget_text(base,value='Stations.txt') base1 = widget_base(base,/column) base10 = widget_base(base1,/row) iFile = widget_droplist(base10,value=FilesCoef,uvalue='file') espaco = widget_label(base10,value=' ') hora = widget_droplist(base10,title='Hora',value=Horas,uvalue='hora') espaco = widget_label(base10,value=' ') grau = widget_slider(base10,title='grau',max=15,value=0,uvalue='grau') espaco = widget_label(base10,value=' ') maismenos =['+','-'] sinal = cw_bgroup(base10,maismenos,/row,/exclusive,/return_name,uvalue='sinal') ;label_top ?? widget_control,sinal,set_value=0 w_ordem = widget_slider(base10,title='ordem',max=15,value=0,uvalue='ordem') espaco = widget_label(base10,value=' ') base11 = widget_base(base10,/column) aviso1 = widget_label(base11,value='geogr./earth-fixed ') aviso2 = widget_label(base11,value='output: predicaoNN.txt ou gif ') draw = widget_draw(base1,xsize=700,ysize=460) NLat=71 & Lat=findgen(NLat)*(-2.5)+87.5 NLon=73 & Lon=findgen(NLon)*5-180. widget_control,base0,set_uvalue = $ { $ ;texto:texto, $ FilesCoef:FilesCoef, $ iFile:0, $ Horas:Horas, $ iHora:0, $ Grau:0, $ Ordem:0, $ w_ordem:w_ordem, $ Sinal:+1, $ ; Sinal = +1 ou -1 [default=+1] Coef:Coef, $ ; Coef = dblarr(36,12,16,16) ; 35x12x16x16 = 107.520 nmeros Coefp:dblarr(6,12,16,16), $ Coef.preditos GIM:dblarr(73,71), $ ; register M:dblarr(73,71), $ ; memory Lon:Lon, $ Lat:Lat, $ TEC:fltarr(73,71,12), $ ;TEC lido de file GIM CoeFile:dblarr(12,16,16), $ ;Coef lido de file Coef SunEarth:1, $ ; sun-fixed(0), earth-fixed(1=default) GeogrGeomag:0, $ ; geographic(0=default. geomagnetic(1) plotDefault:'Coef(tempo)', $ ; default para o plot graphicDefault:'contour', $ ; default para o graphic DadosPredicao:'dados', $ ; default dados p/ graphic aviso1:aviso1, $ aviso2:aviso2, $ NOut:NOut} widget_control,base0,/realize erase,1 xmanager,'Prediccion01',base0,/no_block end pro Prediccion01_event, event ; ----------------------------------------------------- widget_control,event.id,get_uvalue=selecao if selecao eq 'menu0' then selecao=event.value widget_control,event.top,get_uvalue=info case selecao of 'File Coef': begin diretorio='c:\Miguel\CoefGIM\' ;diretorio='c:\gps\Miguel\DadosTEC\CoefDissertacao\' FileCoef = dialog_pickfile(path=diretorio,filter='*.txt',title='Diretrio de file.Coef:',/read) ;LeCoeficientes, Coef,Files,diretorio ;Le os coeficientes GIM nos files do diretorio ; AINDA NAO LE <<<<<<<<<<<<<<<<<<< end 'File GIM': begin diretorio = 'c:\Miguel\Jpl\' ;diretorio = 'd:\gps\Miguel\DadosTEC\' FileGIM = dialog_pickfile(path=diretorio,filter='*.txt',title='Diretrio de file.GIM:',/read) LeFileGIM, TEC,FileGIM help,TEC ; Float [73,71,11] info.TEC = TEC/10. print,info.TEC;>>>>>>>>>>>> end 'file': begin info.iFile = event.index calculate_graphic_Default,info end 'hora': begin info.iHora = event.index calculate_graphic_Default,info end 'grau': begin info.Grau = event.value widget_control,info.w_ordem,set_slider_max=info.Grau if info.Ordem gt info.Grau then info.Ordem=info.Grau ;caso |m|>n calculate_plot_Default,info end 'ordem': begin info.Ordem = event.value calculate_plot_Default,info end 'sinal': begin info.Sinal = (event.value eq '+')? +1:-1 calculate_plot_Default,info end 'Coef(dias)': begin & info.plotDefault=selecao & calculate_plot_Default,info & end 'Coef(horas)': begin & info.plotDefault=selecao & calculate_plot_Default,info & end 'Coef(tempo)': begin & info.plotDefault=selecao & calculate_plot_Default,info & end 'correlao': begin & info.plotDefault=selecao & calculate_plot_Default,info & end 'Espectro': begin & info.plotDefault=selecao & calculate_plot_Default,info & end 'Plot Pnm(x)': begin & info.plotDefault=selecao & calculate_plot_Default,info & end 'Plot Pnm(senB)':begin & info.plotDefault=selecao & calculate_plot_Default,info & end 'calculate GIM': calculate_graphic_GIM,info,selecao 'GIM grau fixo': calculate_graphic_GIM,info,selecao 'GIM ordem fixa': calculate_graphic_GIM,info,selecao 'M <= R': info.M = info.GIM ; coloca o GIM na Memory 'M = M - R':info.M = info.M - info.GIM ; subtrai o Registro da Memory 'M = - M': info.M = - info.M ; inverte o sinal da Memory 'sun-fixed': info.SunEarth = 0 'earth-fixed': info.SunEarth = 1 'geogr.': info.GeogrGeomag = 0 'geomag.': info.GeogrGeomag = 1 'Plot GIM': begin & info.graphicDefault = selecao & calculate_graphic_Default,info & end 'Plot Contour B&W': begin & info.graphicDefault = selecao & calculate_graphic_Default,info & end 'surface': begin & info.graphicDefault = selecao & calculate_graphic_Default,info & end 'shade': begin & info.graphicDefault = selecao & calculate_graphic_Default,info & end 'trigrid': begin & info.graphicDefault = selecao & calculate_graphic_Default,info & end 'shade 3grid': begin & info.graphicDefault = selecao & calculate_graphic_Default,info & end 'polar equador': begin & info.graphicDefault = selecao & calculate_graphic_Default,info & end 'polar Greenwich': begin & info.graphicDefault = selecao & calculate_graphic_Default,info & end 'estatistica': begin & info.graphicDefault = selecao & calculate_graphic_Default,info & end 'contour': begin & info.graphicDefault = selecao & calculate_graphic_Default,info & end '24 horas': begin widget_control,/hourglass for iHora=0,11 do begin infoL = info infoL.iHora = iHora+1 GIM, E,Lon,Lat,infoL,reform(info.Coef[info.iFile,iHora,*,*]),selecao ;reform elimina dimenso 1 PlotGIM, E,Lon,Lat endfor end '36 dias': begin widget_control,/hourglass for iFile=0,11 do begin GIM, E,Lon,Lat,info,reform(info.Coef[iFile,info.iHora,*,*]),selecao ;reform elimina dimenso 1 PlotGIM, E,Lon,Lat endfor end 'subtrai GIM': begin GIM, E,Lon,Lat,info,reform(info.Coef[info.iFile,info.iHora,*,*]),selecao ;reform elimina dimenso 1 E = info.GIM - E PlotGIM, E,Lon,Lat info.GIM = E end 'Kalman': 'MEM': begin n=info.Grau m=info.Sinal*info.Ordem i = (m ge 0)? n:n+m j = (m ge 0)? n-m:n help,i,j ;plot,info.Coef[*,info.iHora,i,j],title='Coeficiente'+string(n)+string(m) n=36 & t=findgen(n) x = info.Coef[*,info.iHora,i,j] ;print,'x',x & plot,t,x nn=30 & m=nn/2 MEM, G,m,x[0:nn-1],nn,P ; pega s os 30 pontos iniciais ;Print,' P=',P ;print,'G=',G ;plot,P/abs(complex(FFT(G)))^2 ;y=fltarr(33) & y[0:15]=x & print,y & oplot,abs(FFT(y)) ; Prediccion x=srie; xp=x predito a partir de nn+1 ggg=-G[1:m+1] & print,ggg xp=fltarr(n) & xp[0:nn-1]=x[0:nn-1] for i=nn,n-1 do begin xp[i]=0.0 for j=1,m do xp[i]=xp[i]+ggg[j]*x[i-j] endfor plot,t,x,xtitle= 'Dias',xrange=[0,35],/xstyle,ytitle= 'UTEC',/ystyle,YGRIDSTYLE=1,YTHICK=1.2,YTICKLEN=1,YTICKS=15 $ ,XGRIDSTYLE=1,XTHICK=1.2,XTICKLEN=1,XTICKS=35;mmmmmmmmmmmm oplot,t[nn-1:n-1],xp[nn-1:n-1],color=2,psym=2 end 'MinQua': 'Kalman_GIM': 'MEM_GIM': begin widget_control,/hourglass for iHora=0,11 do begin for i=0,15 do begin for j=0,15 do begin widget_control,info.aviso2,set_value='Hora ='+string(iHora*2+1) x = info.Coef[*,iHora,i,j] Serie_Predita_MEM, xp,x info.Coefp[*,iHora,i,j] = xp endfor; j endfor; i endfor; iHora end 'Mapa F2crit':begin NT=info.GIM C=270;Vero=270,Outono=Primavera=240,Inverno=210 R12=103.05;R12=SSN T=C*(1+0.005*R12);dado em Km NF=NT/1.125;NT(UT)=NF(UT)=aNF(max), a=0.1 USA,a=0.15, Usado a=0.125, NT em UTEC=10^16e/m2 NmF2=NF/T FoF2= sqrt(80.6*NmF2*10) Lon=info.Lon Lat=info.Lat contour,FoF2,Lon,Lat,Levels=indgen(16)*1,/fill,title='Frequencia critica F2 em MHz ' $ + info.Horas[info.iHora] +':00 UT'+' '+info.FilesCoef[info.iFile] $ ,xtitle='W MHz E' $ ,ytitle='LATITUDE',XRANGE=[-180,180],/XSTYLE,YRANGE=[-90,90],/YSTYLE,XGRIDSTYLE=1,XTHICK=1.2,XTICKLEN=1,XTICKS=18 $ ,YGRIDSTYLE=1,YTHICK=1.2,YTICKLEN=1,YTICKS=12;>>>mdc for j=0,14 do TV, replicate((!D.Table_Size/15)*j,30,8), 30*j+150,15 plots,[150,30*15+150],[15,15],color=0,/device plots,[150,30*15+150],[15+8,15+8],color=0,/device for j=0,15 do plots,[30*j+150,30*j+150],[15,15+8],color=0,/device for j=0,15 do xyouts,100+ 30*j+5,2, j*1 ,color=0,/device return end 'Pred. F2crit': '1 MHz ':begin Val=info.GIM A=Val*1.343 Lon=info.Lon Lat=info.Lat contour,A,Lon,Lat,Levels=indgen(16)*13,/fill,title='Atraso em milisegundos de 1 MHz ' $ + info.Horas[info.iHora] +':00 UT'+' '+info.FilesCoef[info.iFile] $ ,xtitle='W miliseg E' $ ,ytitle='LATITUDE',XRANGE=[-180,180],/XSTYLE,YRANGE=[-90,90],/YSTYLE,XGRIDSTYLE=1,XTHICK=1.2,XTICKLEN=1,XTICKS=18 $ ,YGRIDSTYLE=1,YTHICK=1.2,YTICKLEN=1,YTICKS=12;>>>mdc for j=0,14 do TV, replicate((!D.Table_Size/15)*j,30,8), 30*j+150,15 plots,[150,30*15+150],[15,15],color=0,/device plots,[150,30*15+150],[15+8,15+8],color=0,/device for j=0,15 do plots,[30*j+150,30*j+150],[15,15+8],color=0,/device for j=0,15 do xyouts,100+ 30*j+5,2, j*13 ,color=0,/device return end '10 MHz':begin Val=info.GIM A=Val*13.43 Lon=info.Lon Lat=info.Lat contour,A,Lon,Lat,Levels=indgen(16)*100,/fill,title='Atraso em microsegundos de 10 MHz ' $ + info.Horas[info.iHora] +':00 UT'+' '+info.FilesCoef[info.iFile] $ ,xtitle='W microseg E' $ ,ytitle='LATITUDE',XRANGE=[-180,180],/XSTYLE,YRANGE=[-90,90],/YSTYLE,XGRIDSTYLE=1,XTHICK=1.2,XTICKLEN=1,XTICKS=18 $ ,YGRIDSTYLE=1,YTHICK=1.2,YTICKLEN=1,YTICKS=12;>>>mdc for j=0,14 do TV, replicate((!D.Table_Size/15)*j,30,8), 30*j+150,15 plots,[150,30*15+150],[15,15],color=0,/device plots,[150,30*15+150],[15+8,15+8],color=0,/device for j=0,15 do plots,[30*j+150,30*j+150],[15,15+8],color=0,/device for j=0,15 do xyouts,100+ 31*j+5,2, j*100 ,color=0,/device return end '100 MHz':begin Val=info.GIM A=Val*0.1343 Lon=info.Lon Lat=info.Lat contour,A,Lon,Lat,Levels=indgen(16)*1,/fill,title='Atraso em microsegundos de 100 MHz ' $ + info.Horas[info.iHora] +':00 UT'+' '+info.FilesCoef[info.iFile] $ ,xtitle='W microseg E' $ ,ytitle='LATITUDE',XRANGE=[-180,180],/XSTYLE,YRANGE=[-90,90],/YSTYLE,XGRIDSTYLE=1,XTHICK=1.2,XTICKLEN=1,XTICKS=18 $ ,YGRIDSTYLE=1,YTHICK=1.2,YTICKLEN=1,YTICKS=12;>>>mdc for j=0,14 do TV, replicate((!D.Table_Size/15)*j,30,8), 30*j+150,15 plots,[150,30*15+150],[15,15],color=0,/device plots,[150,30*15+150],[15+8,15+8],color=0,/device for j=0,15 do plots,[30*j+150,30*j+150],[15,15+8],color=0,/device for j=0,15 do xyouts,100+ 30*j+5,2, j*1 ,color=0,/device return end '1 GHz':begin Val=info.GIM A=Val*1.343 Lon=info.Lon Lat=info.Lat contour,A,Lon,Lat,Levels=indgen(16)*13,/fill,title='Atraso em nanosegundos de 1 GHz ' $ + info.Horas[info.iHora] +':00 UT'+' '+info.FilesCoef[info.iFile] $ ,xtitle='W nanoseg E' $ ,ytitle='LATITUDE',XRANGE=[-180,180],/XSTYLE,YRANGE=[-90,90],/YSTYLE,XGRIDSTYLE=1,XTHICK=1.2,XTICKLEN=1,XTICKS=18 $ ,YGRIDSTYLE=1,YTHICK=1.2,YTICKLEN=1,YTICKS=12;>>>mdc for j=0,14 do TV, replicate((!D.Table_Size/15)*j,30,8), 30*j+150,15 plots,[150,30*15+150],[15,15],color=0,/device plots,[150,30*15+150],[15+8,15+8],color=0,/device for j=0,15 do plots,[30*j+150,30*j+150],[15,15+8],color=0,/device for j=0,15 do xyouts,100+ 30*j+5,2, j*13 ,color=0,/device return end '10 GHz':begin Val=info.GIM A=Val*13.43 Lon=info.Lon Lat=info.Lat contour,A,Lon,Lat,Levels=indgen(16)*100,/fill,title='Atraso em picosegundos de 10 GHz ' $ + info.Horas[info.iHora] +':00 UT'+' '+info.FilesCoef[info.iFile] $ ,xtitle='W picoseg E' $ ,ytitle='LATITUDE',XRANGE=[-180,180],/XSTYLE,YRANGE=[-90,90],/YSTYLE,XGRIDSTYLE=1,XTHICK=1.2,XTICKLEN=1,XTICKS=18 $ ,YGRIDSTYLE=1,YTHICK=1.2,YTICKLEN=1,YTICKS=12;>>>mdc for j=0,14 do TV, replicate((!D.Table_Size/15)*j,30,8), 30*j+150,15 plots,[150,30*15+150],[15,15],color=0,/device plots,[150,30*15+150],[15+8,15+8],color=0,/device for j=0,15 do plots,[30*j+150,30*j+150],[15,15+8],color=0,/device for j=0,15 do xyouts,100+ 30*j+5,2, j*100 ,color=0,/device return end 'print tela': begin info.NOut = info.NOut + 1 OutFile = strcompress('predicao'+string(info.NOut)+'.gif') write_gif,OutFile,color_quan(TVRD(true=1),1,R,G,B,colors=32),R,G,B widget_control,info.aviso2,set_value='OUTPUT = '+OutFile end 'annotate': annotate 'coeficientes': ; todos 'Coef(File,H)': begin if (info.iFile le 35)then begin info.NOut = info.NOut + 1 OutFile = strcompress('predicao'+string(info.NOut)+'.txt') openw,lun,OutFile,/get_lun printf,lun,'File =',info.iFile,' Hora = ',info.Horas[info.iHora] for n=0,15 do begin ;Grau for mm=0,n do begin ;Ordem m = +mm i = (m ge 0)? n:n+m j = (m ge 0)? n-m:n printf,lun,'n,m = ',n,m,info.Coef[info.iFile,info.iHora,i,j] m = -mm i = (m ge 0)? n:n+m j = (m ge 0)? n-m:n printf,lun,'n,m = ',n,m,info.Coef[info.iFile,info.iHora,i,j] endfor & endfor close,lun & free_lun,lun widget_control,info.aviso2,set_value='OUTPUT = '+OutFile endif end 'GIM(File,H)': begin ; ; imprime tabela de GIM*10 nmeros inteiros info.NOut = info.NOut + 1 OutFile = strcompress('predicao'+string(info.NOut)+'.txt') openw,lun,OutFile,/get_lun printf,lun,'File =',info.iFile,' Hora = ',info.Horas[info.iHora] printf,lun,fix(info.GIM*10) close,lun & free_lun,lun widget_control,info.aviso2,set_value='OUTPUT = '+OutFile end 'teste': stop,'teste' 'sair': widget_control,event.top,/destroy endcase if selecao ne 'sair'then begin F51='(F5.1)' SunEarth = ['sun-fixed','earth-fixed'] GeogrGeomag = ['geographic','geomagnetic'] widget_control,info.aviso1,set_value=SunEarth[info.SunEarth]+' / '+GeogrGeomag[info.GeogrGeomag] widget_control,event.top,set_uvalue=info endif end PAGE  PAGE 128  &klrstvw}~0JCJmHnHu0JCJj0JCJU0J j0JUCJ5CJ   %&';FZ-U}+NTVW$a$k$&[/1W}  O ' q q % N `   % > ? V W u   & ' @ c  9U+23\M!";<]blmA~,??_ n2N)enE7N`ip(7FP_ir&XAKS]abOr1WXl+l1 2 A !-!7!@!A!O!h!!!!*"5"?"H"H"I"_""""### #$#%#e#s#t######:$$$$$-%%%=&i&i&&&'''''b't'u'''''(n(y(( )?)N)U)Y)Z)[)))))))**n*s****++1+a+++++ ,,I,},,,,,--0-N-------F.K.t.|.....P/]/////0=0]000001C1]111111C2Q2V22213?3D3i333@4N4S4k4444!5J5P5X5t55566>6N6S6h6m666667.7A7F7W7777I89x999!:K:z:::/;6;6;7;<;Q;l;};;;;;)<T<<<<<<==5=s====> >$>%>c>{>{>>>>>>&?\?????@@$@4@<@E@F@L@V@w@@@@@@@@@@A8A@A]AyAAAB5B@BGBKBLBBBBBBCCCHCcCCCCCCCC D3D7D8DDDDDE EaEkEEFFFWFFFFGsGGGGG-H\HHHHI6IIII J2JMJUJ]J^J{JJJKKKKKKK&LMLL/MMMNININNOkkkkkkk ll"l1lel{llllm!m1mAmmmYnnoLo{ooo/p6p7p;pzLz\zkz{zzz/{{|U|||||B}~}}}}}}}}}}7~~~mLπր׀ۀ܀݀ HƁˁ/K#/Haȃ#8Sބބ5Qʅ IQp~҆4^eiktuv&`#$/0&P P. A!"#$% i0@0 Normal_HmHsHtH6A@6 Fonte parg. padro.>@. Ttulo$a$5CJ, @, Rodap  C"0)@0 Nmero de pgina2@"2 Cabealho  C" %&';FZ-U}+NTVW$&[/1W}O'q%N`%>?VWu  & ' @ c   9 U  + 2 3 \ M  ! " ; < ] blmA~,?_ n2N)enE7N`ip(7FP_ir&XAKS]abOr1WXl+l12A-7@AOh*5?HI_ $%est: -!!!="i"""#####b#t#u#####$n$y$$ %?%N%U%Y%Z%[%%%%%%&&n&s&&&&''1'a''''' ((I(}((((())0)N))))))F*K*t*|*****P+]+++++,=,],,,,,-C-]-----C.Q.V...1/?/D/i///@0N0S0k0000!1J1P1X1t1112>2N2S2h2m222223.3A3F3W3333I45x555!6K6z666/76777<7Q7l7}77777)8T8888889959s9999: :$:%:c:{::::::&;\;;;;;<<$<4<<<E<F<L<V<w<<<<<<<<<=8=@=]=y===>5>@>G>K>L>>>>>>???H?c??????? @3@7@8@@@@@A AaAkAABBBWBBBBCsCCCCC-D\DDDE6EEEE F2FMFUF]F^F{FFFGKGGGGG&HMHH/IIIJIJJKggggggg hh"h1heh{hhhi!i1iAiiiYjjkLk{kkk/l6l7l;lvLv\vkv{vvv/wwxUxxxxBy~yyyyyyyyyy7zzzm{{{|L||||||||| }H}}}}}}~/~K~~~~#/Ha#8Sހ5Qʁ IQp~҂4^eikv0@@0@ Eq ?H"i&)-166;{>@CHINITW[`fzilqv|ބFHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgG !!t(+ux_eov-07:[ikov ]bvz38@DfjPTW] (-5:CH$%*+235HMOTUXahkq $+.19:=?AXZ  : ? B I e j k r s u ? B O T X ] ^ a b h    % ( * 6 ; ] c O Q } < C ] b c j k m -127?Eckmqruvy'+BGIMPT&+@GJPcjkm~"$*,35;=>BDFGKMQRVxz#&HM%,1gm(,/5LNQSVX[]^adflpquwz{9<PTW[bhjouwz~"$+.BEIORX[^ahjqrxz )+46[]fh AEKRSYlopstxy}  Y\]dei  !'05;<@AEfk{  $%*79PRSW^bcgxz  )DKRT]_qz{  ),04bgkru~   ).48>LSWZ[^bimpqt)0478;fjor      L U -!4!8!;!(A(D(J(N(O(R(U(Z(~(((((((((((((((((() )!)$)*)/)6)=)O)S)V)\)d)i))))))))))))))))))))** * *****!*8*>*K*O*Q*V*]*a*b*i*l*s*t*{*****************+++ + +++++++ +!+&+-+4+6+<+P+T+]+d+f+j+o+s+t+w+x+|+}++++++++++++++++++++?,C,M,Q,_,c,v,{,,,,,,,,,,,,,,- --C-Q-S-\-^-b-c-f-i-l--------------------------.... . ...".)./.D.H.\.`.a.f.h.m...........................////2/6/J/N/O/T/V/[/j/l/o/s/t/y///////////////////////000 0 000000&0,0A0E0V0X0Y0]0^0c0e0j0s0v0w0z0{00000000000000000000000000111 11111$1&1'1+1,1113171>1B1J1N1P1W1]1a1b1p1u1y11111111111111111111111111111111112222 2 2 2222!2#2'2,20212425292:2=2?2F2H2M2T2Y2b2g2~2222222222222222222333333#3$3'3)3-3G3N3Q3V3X3`3e3n3q3|33333333333333333333333334 44444,40414:4;4?4@4E4R4Z4[4_4`4h4p4{4|4444445 55555"6'6L6Q6{6666/757=7H7K7P7S7W7X7a7b7f7t7x7~777777777777778 888_8e8k8o8p8t8u8y8z8~8888888888888889969<999999999::: :::::d:k:l:s:t:z:|:::::::::::::::: ;;\;a;b;h;;;5<;<<<<<<<<<<=====9=?=y=~=======>!>&>*>+>/>@>F>P>a>c>e>>>>>>>? ?? ?*?,?H?K?Y?^?_?b?c?e?f?l?r?t??????????????????? @ @@@@@A AAAAAB B#B)BBBBBBBBBBBBBBBBB CCC"C#C.C=C@CBCGCHCMCQCUCVC[C^CcCvC{C|C~CCCCCCCCCCCCCCCCCCCCCCCDD DDDD D%D&D+D1D6D7D9DMKMMMMMMMMMN!NKNRNUNbNNNNNNNN OMOYOOOOOOOOOOOOOOOOOOPJPSPTP]PPPPPPPPPPPPQ4Q9Q:Q@QPQTQcQiQvQ~QQQQQQQQQQQQQQQQQQQRRRR-R6R;RFRfRpR|RRRRRRRRRRRRRRRRRRRSSS#S*SPSTSUSYSSSTTTTT&T'T.T2T9T:T^C^I^N^Q^U^V^d^g^n^q^^^^^^^^^^^^^^^^^^^^__ ____ _'_*_C_D_H_a_f_i_m_n_|________________``````$`'`+`,`:`=`D`G```a`e`m`t`z``````````````````a aaaaaa#a$a)a=a@aAaDaEaJaKaQaRaVaWa[a\a`aaafagalasaza|aaaaaaaaaaaaaaaaaab b bbbbbbbb b$b%b*b+b/b0b5beKePeQeTeVeXeYe_eeegeeeeeeeeeeeeeeeeeeeeeefffffffffffffff gg!g&g8g=gggggggggggggggggggggggghhh(h,hhhhhii$i'i(i,i-i0i4i7i8ilBlWl\l`lcldlhllllllllllllllllllllllllllmm m mm#m'm(m1m2m6m7m}B}E}I}R}S}Z}[}e}}}}}}}}}~ ~~~~~~ ~$~(~)~.~1~5~6~:~=~A~B~F~M~T~W~b~d~l~u~y~z~~~~~~~~~~~~~~~~~~~~~~~~~~~~~flmp~ (.17@CFNOR߀"&'+/26;<?@GIPRXY\fjkp|ŁƁɁ'56;<?AHIPT[\^eijoĂς!"&'25CDIJMNXY]_djksvjkkvjkkv BOLSISTASC:\Miguel\APNDICE B.docchristiano garnett"C:\temp\eurico\17 - APENDICE B.docEurico R. de Paula$C:\migueldulanto\17 - APENDICE B.dock@tF @UnknownGz Times New Roman5Symbol3& z Arial"1EwF%\\l7!0 APNDICE B BOLSISTASEurico R. de PaulaOh+'0l   ( 4 @LT\d APNDICE BPN BOLSISTASOLS Normal.dotEurico R. de Paula6riMicrosoft Word 9.0@@?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmnopqrstuvwxyz{|}~Root Entry FS8T2u1TableiWordDocument1SummaryInformation(DocumentSummaryInformation8CompObjoObjectPoolS8T2uS8T2u  FDocumento do Microsoft Word MSWordDocWord.Document.89q